<?php

require_once(BaseConfig::LoadClass('objeto_base.class.php'    ));
require_once(BaseConfig::LoadClass('filtro.class.php'         ));
require_once(BaseConfig::LoadClass('abc.class.php'            ));
require_once(BaseConfig::LoadClass('pagina.class.php'         ));
require_once(BaseConfig::LoadClass('pagina_catalogo.class.php'));

class AccelCarga extends ObjetoBase {
  var $intIdAccelCarga ;
  var $strCliente      ;
  var $strRazonSocial  ;
  var $strCEDIS        ;
  var $strMercancia    ;
  var $intEdificio     ;
  var $strTipoServ     ;
  var $strAmbiente     ;
  var $strRefEntrada   ;
  var $strRecDep       ;
  var $strRefCliente   ;
  var $strPedimento    ;
  var $dteEntrada      ;
  var $strClaveProducto;
  var $strDescProducto ;
  var $strEstatus      ;
  var $strLote         ;
  var $dteCaducidad    ;
  var $strBulto        ;
  var $intUnidDisp     ;
  var $intPendSurtit   ;
  var $intExistReales  ;
  var $fltPeso         ;
  var $fltValorPesos   ;
  var $fltValorDolares ;
  
  function AccelCarga($intIdAccelCarga = 0) {
    $arrMapaDatos = Array();
    $arrMapaDatos['id_accel_carga'] = Array('NombreVariable' => 'intIdAccelCarga' , 'TipoVariable' => 'I');
    $arrMapaDatos["cliente"       ] = Array('NombreVariable' => 'strCliente'      , 'TipoVariable' => 'S');
    $arrMapaDatos["razon_social"  ] = Array('NombreVariable' => 'strRazonSocial'  , 'TipoVariable' => 'S');
    $arrMapaDatos["cedis"         ] = Array('NombreVariable' => 'strCEDIS'        , 'TipoVariable' => 'S');
    $arrMapaDatos["mercancia"     ] = Array('NombreVariable' => 'strMercancia'    , 'TipoVariable' => 'S');
    $arrMapaDatos["edificio"      ] = Array('NombreVariable' => 'intEdificio'     , 'TipoVariable' => 'N');
    $arrMapaDatos["tipo_serv"     ] = Array('NombreVariable' => 'strTipoServ'     , 'TipoVariable' => 'S');
    $arrMapaDatos["ambiente"      ] = Array('NombreVariable' => 'strAmbiente'     , 'TipoVariable' => 'S');
    $arrMapaDatos["ref_entrada"   ] = Array('NombreVariable' => 'strRefEntrada'   , 'TipoVariable' => 'S');
    $arrMapaDatos["rec_dep"       ] = Array('NombreVariable' => 'strRecDep'       , 'TipoVariable' => 'S');
    $arrMapaDatos["ref_cliente"   ] = Array('NombreVariable' => 'strRefCliente'   , 'TipoVariable' => 'S');
    $arrMapaDatos["pedimento"     ] = Array('NombreVariable' => 'strPedimento'    , 'TipoVariable' => 'S');
    $arrMapaDatos["entrada"       ] = Array('NombreVariable' => 'dteEntrada'      , 'TipoVariable' => 'D');
    $arrMapaDatos["clave_producto"] = Array('NombreVariable' => 'strClaveProducto', 'TipoVariable' => 'S');
    $arrMapaDatos["desc_producto" ] = Array('NombreVariable' => 'strDescProducto' , 'TipoVariable' => 'S');
    $arrMapaDatos["estatus"       ] = Array('NombreVariable' => 'strEstatus'      , 'TipoVariable' => 'S');
    $arrMapaDatos["lote"          ] = Array('NombreVariable' => 'strLote'         , 'TipoVariable' => 'S');
    $arrMapaDatos["caducidad"     ] = Array('NombreVariable' => 'dteCaducidad'    , 'TipoVariable' => 'D');
    $arrMapaDatos["bulto"         ] = Array('NombreVariable' => 'strBulto'        , 'TipoVariable' => 'S');
    $arrMapaDatos["unid_disp"     ] = Array('NombreVariable' => 'intUnidDisp'     , 'TipoVariable' => 'N');
    $arrMapaDatos["pend_surtir"   ] = Array('NombreVariable' => 'intPendSurtit'   , 'TipoVariable' => 'N');
    $arrMapaDatos["exist_reales"  ] = Array('NombreVariable' => 'intExistReales'  , 'TipoVariable' => 'N');
    $arrMapaDatos["peso"          ] = Array('NombreVariable' => 'fltPeso'         , 'TipoVariable' => 'N');
    $arrMapaDatos["valor_pesos"   ] = Array('NombreVariable' => 'fltValorPesos'   , 'TipoVariable' => 'N');
    $arrMapaDatos["valor_dolares" ] = Array('NombreVariable' => 'fltValorDolares' , 'TipoVariable' => 'N');
    
    $this->__ArmarDatosPrivados('accel_carga', $arrMapaDatos, 'id_accel_carga');
    $this->SeleccionarPorIndice($intIdAccelCarga);
  }
}

class FiltroAccelCarga extends Filtro {
  function FiltroAccelCarga() {
    $arrProceso["cliente"       ] = "Cliente"             ;
    $arrProceso["razon_social"  ] = "Razon Social"        ;
    $arrProceso["cedis"         ] = "CEDIS"               ;
    $arrProceso["mercancia"     ] = "Mercancia"           ;
    $arrProceso["edificio"      ] = "Edificio"            ;
    $arrProceso["tipo_serv"     ] = "Tipo Serv"           ;
    $arrProceso["ambiente"      ] = "Ambiente"            ;
    $arrProceso["ref_entrada"   ] = "Ref Entrada"         ;
    $arrProceso["rec_dep"       ] = "Rec Dep"             ;
    $arrProceso["ref_cliente"   ] = "Ref Cliente"         ;
    $arrProceso["pedimento"     ] = "Pedimento"           ;
    $arrProceso["entrada"       ] = "Entrada"             ;
    $arrProceso["clave_producto"] = "Clave Producto"      ;
    $arrProceso["desc_producto" ] = "Descripcion Producto";
    $arrProceso["estatus"       ] = "Estatus"             ;
    $arrProceso["lote"          ] = "Lote"                ;
    $arrProceso["caducidad"     ] = "Caducidad"           ;
    $arrProceso["bulto"         ] = "Bulto"               ;
    $arrProceso["unid_disp"     ] = "Unid Disp"           ;
    $arrProceso["pend_surtir"   ] = "Pend Surtir"         ;
    $arrProceso["exist_reales"  ] = "Exist Reales"        ;
    $arrProceso["peso"          ] = "Peso"                ;
    $arrProceso["valor_pesos"   ] = "Valor Pesos"         ;
    $arrProceso["valor_dolares" ] = "Valor Dolares"       ;
    
    parent::CrearFiltro("accel_carga", "id_accel_carga", $arrProceso, "Busqueda", "", "", "AccelCarga");
  }
}

class Carga_AccelCarga extends CargaExcel {
  function Carga_AccelCarga() {
    parent::CargaExcel();
    $arrProceso["cliente"       ] = "Cliente"             ;
    $arrProceso["razon_social"  ] = "Razon Social"        ;
    $arrProceso["cedis"         ] = "CEDIS"               ;
    $arrProceso["mercancia"     ] = "Mercancia"           ;
    $arrProceso["edificio"      ] = "Edificio"            ;
    $arrProceso["tipo_serv"     ] = "Tipo Serv"           ;
    $arrProceso["ambiente"      ] = "Ambiente"            ;
    $arrProceso["ref_entrada"   ] = "Ref Entrada"         ;
    $arrProceso["rec_dep"       ] = "Rec Dep"             ;
    $arrProceso["ref_cliente"   ] = "Ref Cliente"         ;
    $arrProceso["pedimento"     ] = "Pedimento"           ;
    $arrProceso["entrada"       ] = "Entrada"             ;
    $arrProceso["clave_producto"] = "Clave Producto"      ;
    $arrProceso["desc_producto" ] = "Descripcion Producto";
    $arrProceso["estatus"       ] = "Estatus"             ;
    $arrProceso["lote"          ] = "Lote"                ;
    $arrProceso["caducidad"     ] = "Caducidad"           ;
    $arrProceso["bulto"         ] = "Bulto"               ;
    $arrProceso["unid_disp"     ] = "Unid Disp"           ;
    $arrProceso["pend_surtir"   ] = "Pend Surtir"         ;
    $arrProceso["exist_reales"  ] = "Exist Reales"        ;
    $arrProceso["peso"          ] = "Peso"                ;
    $arrProceso["valor_pesos"   ] = "Valor Pesos"         ;
    $arrProceso["valor_dolares" ] = "Valor Dolares"       ;
    
    $arrConstantes["fecha"] = date("Y-m-d H:i:s");
    
    $arrReferencias = array();
    
    $this->Init("AccelCarga", "accel_carga", $arrProceso, $arrReferencias, $arrConstantes);
    
    $this->intPrimeraLinea       = 0;
    $this->intCargarSoloCompleto = 0;
    $this->bolLimpiarTablaAntes  = true;
    
    $this->__arrInfoSaltarLinea[] = "Cliente";
    $this->__arrInfoSaltarLinea[] = "";
  }
  
  function PrepararArchivo() {
    $arrMeses = Variables::ArrayMeses(true, false, true);
    
    // Cambiar las fechas por fechas legibles
    foreach($this->oLoadXLS->xlsArchivo->sheets[0]["cells"] as $intIndice => $arrInfo) {
      if(
        (!isset    ($arrInfo[1])) || 
        (strtoupper($arrInfo[1]) == "CLIENTE") || 
        (strtoupper($arrInfo[1]) == "")
      ) {
        continue;
      }
      
      // Cambiamos los nombres de meses por numero de mes
      foreach($arrMeses as $intNumMes => $strNomMes) {
        $arrInfo[12] = str_replace($strNomMes, $intNumMes, $arrInfo[12]);
        $arrInfo[16] = str_replace($strNomMes, $intNumMes, $arrInfo[16]);
        $arrInfo[17] = str_replace($strNomMes, $intNumMes, $arrInfo[17]);
      }
      
      $this->oLoadXLS->xlsArchivo->sheets[0]["cells"][$intIndice][12] = Variables::NormalizeDate2($arrInfo[12]);
      $this->oLoadXLS->xlsArchivo->sheets[0]["cells"][$intIndice][16] = Variables::NormalizeDate2($arrInfo[16]);
      $this->oLoadXLS->xlsArchivo->sheets[0]["cells"][$intIndice][17] = Variables::NormalizeDate2($arrInfo[17]);
    }
  }

}


class ABC_AccelCarga extends ABC_Base {
  function ABC_AccelCarga() {
    $strClaseBase     = "AccelCarga"      ;
    $strClaseFiltro   = "FiltroAccelCarga";
    $strClaseCarga    = "Carga_AccelCarga";
    $strCampoMostrar  = "cliente,clave_producto";
    $strOpcionListado = "abc_accel_carga" ;
    $strOpcionGuardar = "abc_accel_carga" ;

    $arrNombresColumnas = array();
    $arrNombresColumnas["cliente"       ] = "Cliente"             ;
    $arrNombresColumnas["razon_social"  ] = "Razon Social"        ;
    $arrNombresColumnas["cedis"         ] = "CEDIS"               ;
    $arrNombresColumnas["mercancia"     ] = "Mercancia"           ;
    $arrNombresColumnas["edificio"      ] = "Edificio"            ;
    $arrNombresColumnas["tipo_serv"     ] = "Tipo Serv"           ;
    $arrNombresColumnas["ambiente"      ] = "Ambiente"            ;
    $arrNombresColumnas["ref_entrada"   ] = "Ref Entrada"         ;
    $arrNombresColumnas["rec_dep"       ] = "Rec Dep"             ;
    $arrNombresColumnas["ref_cliente"   ] = "Ref Cliente"         ;
    $arrNombresColumnas["pedimento"     ] = "Pedimento"           ;
    $arrNombresColumnas["entrada"       ] = "Entrada"             ;
    $arrNombresColumnas["clave_producto"] = "Clave Producto"      ;
    $arrNombresColumnas["desc_producto" ] = "Descripcion Producto";
    $arrNombresColumnas["estatus"       ] = "Estatus"             ;
    $arrNombresColumnas["lote"          ] = "Lote"                ;
    $arrNombresColumnas["caducidad"     ] = "Caducidad"           ;
    $arrNombresColumnas["bulto"         ] = "Bulto"               ;
    $arrNombresColumnas["unid_disp"     ] = "Unid Disp"           ;
    $arrNombresColumnas["pend_surtir"   ] = "Pend Surtir"         ;
    $arrNombresColumnas["exist_reales"  ] = "Exist Reales"        ;
    $arrNombresColumnas["peso"          ] = "Peso"                ;
    $arrNombresColumnas["valor_pesos"   ] = "Valor Pesos"         ;
    $arrNombresColumnas["valor_dolares" ] = "Valor Dolares"       ;

    $arrReferencias = array();
    
    $this->Inicializar($strClaseBase, $arrNombresColumnas, $strOpcionListado, $strOpcionGuardar, $strCampoMostrar, $strClaseFiltro, $arrReferencias, "", $strClaseCarga);
    
    $this->bolABCLista             = true;
    $this->bolABCListaOcultarTD    = true;
    $this->bolPosibleNuevoElemento = false;
    $this->intTipoGuardado         = 1;
    $this->intNumeroRes            = 50;
    $this->bolSoloLectura          = true;
  }
}

?>